home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 17 / AMIGAplus Sonderheft 17 (1999)(ICP)(DE)[!].iso / Rexx / E!XI / E!XI.rexx < prev   
OS/2 REXX Batch file  |  1997-07-21  |  3KB  |  114 lines

  1. /* $VER: Excelsior!'s_Xtruder_Interface 2.1 (1.10.95) © 1995 Alex Holst/SHI
  2.  
  3.         This script is freeware, and may be copied as long as no changes
  4.         are made to the contents of the original distribution archive.
  5.  
  6.     Filename check original code by Tobias Biehl (2:235/314.46@fidonet)
  7.  
  8.         Requires Xtruder 2.0
  9.         Flames to dev/null. Bugreports, suggestions and women to..
  10.  
  11.                         Alex Holst, SHI
  12.                         2:238/127.0@fidonet
  13.                         39:140/136.0@amiganet
  14. */
  15.  
  16. LOG = 'E:Text/logs/E!XI.log'    /* Path and name of your logfile. */
  17. Badlist = 'E:EX.BadFiles'    /* Set your Ascii file with warns here. */
  18.  
  19. /*
  20. ··············································································
  21.                        DO NOT EDIT BELOW THIS LINE
  22. ··············································································
  23. */
  24.  
  25. ADDRESS XTRUDER
  26. OPTIONS RESULTS
  27. PARSE UPPER ARG arg2
  28. archive = arg2
  29.  
  30. /*************************** Argument Check ************************/
  31.  
  32. If archive = '?' then do
  33.   say ''
  34.   say '  E!XI 2.1 © Alex Holst for SHI '
  35.   say ''
  36.   say ' Usage: rx E!XI.rexx FILENAME/A'
  37.   say ''
  38.   say 'E!XI will ask Xtruder to check the file'
  39.   say 'you specify as argument. If this is an'
  40.   say 'archive it will be uncrunched with the'
  41.   say 'settings you have chosen for Xtruder.'
  42.   say ''
  43.   Exit 0
  44. End
  45.  
  46. IF archive = '' then do
  47.   say 'Required argument missing.'
  48.   exit 0
  49. END
  50.  
  51. /*************************** Open File(s) ***************************/
  52.  
  53. BADVAR = 'TRUE'
  54.  
  55. IF ~Open(ScanFil,Badlist,R) Then Do
  56.   Say "E!XI Error: Couldn't find your Badlist! Check your settings in the script."
  57.   BADVAR = 'FALSE'
  58. End
  59.  
  60. IF ~Open(ReadLog,LOG,A) then do
  61.   Say "E!XI Error: Unable to write to LOG!"
  62.   Exit 0
  63. End
  64.  
  65. /************************ Start Check ********************************/
  66.  
  67. say 'E!XI 2.1 by Alex Holst/SHI'
  68. say ''
  69. say 'Checking 'archive' for virus...'
  70.  
  71. Call WriteLn(ReadLog,'< '||Date()||' 'Time()||'  Xtruder started check of 'archive)
  72.  
  73. CHECKFILES archive
  74. filestatus = rc
  75.  
  76. IF filestatus = -1 THEN DO
  77.   say 'E!XI Error: Could not find 'archive'!'
  78.   Call WriteLn(ReadLog,'+ '||Date()||' 'Time()||'  'archive' not found! Exiting.')
  79.   Exit 0
  80. END
  81.  
  82. IF BADVAR = 'TRUE' THEN DO
  83.   Say "Checking EX.BadFiles list..."
  84.   Call WriteLn(ReadLog,'+ '||Date()||' 'Time()||'  Comparing 'archive' against BadList')
  85.   Do Until EOF(ScanFil) = 1
  86.   Line = ReadLn(ScanFil)
  87.   IF UPPER(Line) = UPPER(file) Then do
  88.     Say ""
  89.     Say "This file is listed as dangerous!"
  90.     Call WriteLn(ReadLog,'! '||Date()||' 'Time()||'  'archive' is listed as dangerous!')
  91.     Exit 0
  92.   END
  93. END
  94.   IF filestatus = 0 THEN DO
  95.     Call WriteLn(ReadLog,'+ '||Date()||' 'Time()||'  Xtruder found nothing in 'archive)
  96.     say 'Archive contains no vira.'
  97.     say 'Ok!'
  98.   END
  99.   IF filestatus >= 1 THEN DO
  100.     say archive' seem to contain a virus!'
  101.     Call WriteLn(ReadLog,'! '||Date()||' 'Time()||'  Xtruder found virus in 'archive'!')
  102.     address command 'run <Nil: >nil: doors:E!XI/E!XI-FV'
  103.   END
  104. END
  105.  
  106. Call WriteLn(ReadLog,'< '||Date()||' 'Time()||'  Xtruder ended check of 'archive)
  107.  
  108. Call Close LOG
  109. Call Close BadList
  110.  
  111. EXIT 0
  112. END
  113.  
  114.